<!--
 * @componentName: 数据统计组件
 * @待处理问题: 1.对象合并使用原生js,目前使用ES6（Object.assing）
 * @已处理问题: 
 * @Author: 舒克
 * @Official Accounts: 氧化1028
 * @email: 143587623@qq.com
 * @github: https://gitee.com/KingSio
 * @Date: 2021-03-23 18:31:58
 * @LastEditTime: 2021-03-23 20:30:59
 * @FilePath: \个人项目\vue\1.vue全站管理系统\vue_shop\src\components\reportsed\reports.vue
-->
<template>
  <div>
    <!-- 卡片视图区域 -->
    <el-card>
      <!--2.为ECharts准备一个具备大小（宽高）的Dom -->
      <div id="main" style="width: 700px;height:400px;"></div>
    </el-card>
  </div>
</template>
<script>
//1.导入
//import echarts from 'echarts'

//使用
//import * as echarts from 'echarts';
// 或
import { getReportsDataList } from '@/api/reports'
import objectAssign from 'lodash'
const echarts = require('echarts')
export default {
  data() {
    return {
        //需要合并的数据
        options: {
        title: {
          text: '用户来源'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#E9EEF3'
            }
          }
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        xAxis: [
          {
            boundaryGap: false
          }
        ],
        yAxis: [
          {
            type: 'value'
          }
        ]
      }
    }
  },
  created() {},

  //此时，页面上的元素，已经被渲染完毕了
  mounted() {
    //3. 基于准备好的dom，初始化echarts实例
    console.log(echarts)
    var myChart = echarts.init(document.getElementById('main'))
    this.getReportsData().then(res => {
      //4.准备数据和配置项
  //var a= objectAssign.merge(res,this.options)//使用插件对象合并
    //参数1是合并源,导致数据错乱，展示没有找到解决方法
     const result2=Object.assign(this.options,res,this.options)//使用es6的方法实现
      
      // 指定图表的配置项和数据
      // 5.使用刚指定的配置项和数据显示图表。
      myChart.setOption(result2)
    })
  },
  methods: {
    async getReportsData() {
      const { data: res } = await getReportsDataList()
      if (res.meta.status !== 200) {
        return this.$message.error('获取折线图数据失败')
      }
      console.log(res)
      return res.data
    }
  }
}
</script>

<style lang="less" scoped></style>
